#ifndef _pthread_task_h
#define _pthread_task_h

#include "Mutex.h"

namespace ddserver
{
namespace thread
{

class Task
{
public:
    Task();
    Task(void* data);
    virtual ~Task();

public:
    void* get_data();
    void set_data(void* data);

public:
    virtual void run() = 0;
    virtual void destroy() = 0;

protected:
    void* m_data;
    Mutex m_mutex;
};

}  
} 

#endif